/******对服务器端数据API进行二次封装**************/
//服务器端接口的基础地址
export let base = 'https://web.codeboy.com/xuezi/'

//POST请求的公共选项
let postOption = {
	//请求方法
	method:'POST',
	header:{'Content-Type':'application/x-www-form-urlencoded'},
}


/**
 * 接口地址：data/product/list.php
 * 请求方式：GET
 * 请求示例：data/product/list.php?pno=1&kw=Apple*/
 
 export let productList = async (pno=1,kw="")=>{
	 //1.显示"加载中"提示框
	 uni.showLoading({
	 	title:'加载中...'
	 })
	 //2.异步请求服务器端接口数据
	 let url = base + `data/product/list.php?pno=${pno}&kw=${kw}`
	 let [err,res] = await uni.request({
	 	url
	 })
	 //3.隐藏"加载中"提示框
	 uni.hideLoading()
	 //4.返回查询到的响应消息主体数据
	 return res.data
 }

// 1.2、商品详情
// 接口地址：data/product/details.php
// 请求方式：GET
// 请求示例：data/product/details.php?lid=2

export let productDetails = async (lid=1)=>{
	uni.showLoading({
		title:'加载中...'
	})
	
	let url = base + 'data/product/details.php?lid=' + lid
	let [err,res] = await uni.request({
		url
	})
	
	uni.hideLoading()
	
	return res.data
}

// 1.5、首页数据
// 接口地址：data/product/index.php
// 请求方式：GET
// 接口示例：data/product/index.php
export let productIndex = async ()=>{
	uni.showLoading({
		title:'加载中...'
	})
	
	let url = base + 'data/product/index.php'
	let [err,res] = await uni.request({
		url
	})
	
	uni.hideLoading()
	
	return res.data
}

// 1.6、品牌列表
// 接口地址：data/product/brand.php
// 请求方式：GET
// 接口示例：data/product/brand.php
export let productBrand = async ()=>{
	uni.showLoading({
		title:'加载中...'
	})
	
	let url = base +'data/product/brand.php'
	let [err,res] = await uni.request({
		url
	})
	
	uni.hideLoading()
	
	return res.data
}

// 1.7、产品分类
// 接口地址：data/product/category.php
// 请求方式：GET
// 接口示例：data/product/category.php
export let productCategory = async ()=>{
	uni.showLoading({
		title:'加载中...'
	})
	
	let url = base + 'data/product/category.php'
	let [err,res] = await uni.request({
		url
	})
	
	uni.hideLoading()
	
	return res.data
}

// 2.1、用户注册
// 接口地址：data/user/register.php
// 请求方式：POST
// 请求示例：data/user/register.php
export let userRegister = async ({uname,upwd,email,phone})=>{
	uni.showLoading({
		title:'提交中...'
	})
	
	let url = base + 'data/user/register.php'
	let [err,res] = await uni.request({
		url,
		// method:'POST',
		// header:{'Content-Type':'application/x-www-form-urlencoded'},
		...postOption,
		data:{uname,upwd,email,phone}
	})
	
	uni.hideLoading()
	
	return res.data
}

// 2.2、用户登录
// 接口地址：data/user/login.php
// 请求方式：POST
// 请求示例：data/user/login.php
export let userLogin = async ({uname,upwd})=>{
	uni.showLoading({
		title:'登陆中...'
	})
	let url = base + 'data/user/login.php'
	let [err,res] = await uni.request({
		url,
		...postOption,
		data:{uname,upwd}
	})
	uni.hideLoading()
	return res.data
}

// 2.3、当前登录用户基础信息
// 接口地址：data/user/get_basic.php
// 请求方式：GET
// 请求示例：data/user/get_basic.php
// 前置要求：完成用户登录，请求头部携带身份认证token
// 请求头部：authorization: 加密TOKEN数据
export let userGetBasic = async ()=>{
	uni.showLoading({
		title:'数据读取中...'
	})
	let url = base + 'data/user/get_basic.php'
	//读取保存在客户端的用户令牌
	let token = uni.getStorageSync('userToken')
	let [err,res] = await uni.request({
		url,              //现在测试此方法,服务器会返回:{code:401}
		header:{'authorization': token}
	})
	uni.hideLoading()
	return res.data
}

// 2.12、检测用户名是否存在
// 接口地址：data/user/check_uname.php
// 请求方式：GET
// 请求示例：data/user/check_uname.php?uname=ding
export let userCheckUname = async (uname)=>{
	uni.showLoading({
		title:'检查中...'
	})
	let url = base + 'data/user/check_uname.php?uname=' + uname
	let [err,res] = await uni.request({
		url
	})
	uni.hideLoading()
	return res.data
}

// 2.13、退出登录
// 接口地址：data/user/logout.php
// 返回格式：JSON
// 请求方式：GET
// 前置要求：完成用户登录，请求头部携带身份认证token
// 请求头部：authorization: 加密TOKEN数据
export let userLogout = async ()=>{
	uni.showLoading({
		title:'退出中...'
	})
	let url = base + 'data/user/logout.php'
	let [err,res] = await uni.request({
		url,
		header:{'authorization':uni.getStorageSync('userToken')}
	})
	uni.hideLoading()
	return res.data
}

// 3.1、添加购物车购买项
// 接口地址：data/cart/add.php
// 返回格式：JSON
// 请求方式：GET
// 请求示例：data/cart/add.php?lid=1&buyCount=5
// 前置要求：完成用户登录，请求头部携带身份认证token
// 请求头部：authorization: 加密TOKEN数据
export let cartAdd = async (lid,buyCount)=>{
	uni.showLoading({
		title:'添加中...'
	})
	let url = base + `data/cart/add.php?lid=${lid}&buyCount=${buyCount}`
	let [err,res] = await uni.request({
		url,
		header:{'authorization': uni.getStorageSync('userToken') }
	})
	uni.hideLoading()
	return res.data
}

// 3.2、购物车项列表
// 接口地址：data/cart/list.php
// 返回格式：JSON
// 请求方式：GET
// 请求示例：data/cart/list.php
// 前置要求：完成用户登录，请求头部携带身份认证token
// 请求头部：authorization: 加密TOKEN数据
export let cartList = async ()=>{
	uni.showLoading({
		title:'加载中...'
	})
	let url = base + 'data/cart/list.php'
	let [err,res] = await uni.request({
		url
	})
	uni.hideLoading()
	return res.data
}